﻿#region zh-CHS 2006 - 2007 DemoSoft 团队 | en 2006 - 2007 DemoSoft Team

//     NOTES
// ---------------
//
// This file is a part of the MMOSE(Massively Multiplayer Online Server Engine) for .NET.
//
//                              2006-2007 DemoSoft Team
//
//
// First Version : by H.Q.Cai - mailto:caihuanqing@hotmail.com

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU Lesser General Public License as published
 *   by the Free Software Foundation; either version 2.1 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

#region zh-CHS 包含名字空间 | en Include namespace
using System;
using System.Linq;
using System.Text;
using System.Collections.Generic;
using Demo.Mmose.Core.Map;
using Demo.Mmose.Core.Common;
using Demo.Mmose.Core.Creature;
#endregion

namespace Demo.Mmose.Core.Item
{
    #region zh-CHS 共有的事件数据类 | en Public EventArgs Class
    /// <summary>
    /// BaseCreature的事件数据类
    /// </summary>
    public class BaseItemEventArgs : EventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseCreature"></param>
        public BaseItemEventArgs( BaseItem baseItem )
        {
            m_BaseItem = baseItem;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// BaseWorld的数据
        /// </summary>
        private BaseItem m_BaseItem = null;
        #endregion
        /// <summary>
        /// BaseWorld实例
        /// </summary>
        public BaseItem Item
        {
            get { return m_BaseItem; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class BeforeUpdateSerialEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseItem"></param>
        public BeforeUpdateSerialEventArgs( long iSerial, BaseItem baseItem ) :
            base( baseItem )
        {
            m_NewSerial = iSerial;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private Serial m_NewSerial = Serial.Zero;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public Serial NewSerial
        {
            get { return m_NewSerial; }
        }

        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private bool m_IsCancel = false;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public bool IsCancel
        {
            get { return m_IsCancel; }
            set { m_IsCancel = value; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class AfterUpdateSerialEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseItem"></param>
        public AfterUpdateSerialEventArgs( long iSerial, BaseItem baseItem ) :
            base( baseItem )
        {
            m_OldSerial = iSerial;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private Serial m_OldSerial = Serial.Zero;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public Serial OldSerial
        {
            get { return m_OldSerial; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class BeforeUpdateXEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseItem"></param>
        public BeforeUpdateXEventArgs( float x, BaseItem baseItem ) :
            base( baseItem )
        {
            m_NewX = x;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private float m_NewX = 0;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public float NewX
        {
            get { return m_NewX; }
        }

        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private bool m_IsCancel = false;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public bool IsCancel
        {
            get { return m_IsCancel; }
            set { m_IsCancel = value; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class AfterUpdateXEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseItem"></param>
        public AfterUpdateXEventArgs( float x, BaseItem baseItem ) :
            base( baseItem )
        {
            m_OldX = x;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private float m_OldX = 0;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public float OldX
        {
            get { return m_OldX; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class BeforeUpdateYEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseItem"></param>
        public BeforeUpdateYEventArgs( float y, BaseItem baseItem ) :
            base( baseItem )
        {
            m_NewY = y;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private float m_NewY = 0;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public float NewY
        {
            get { return m_NewY; }
        }

        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private bool m_IsCancel = false;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public bool IsCancel
        {
            get { return m_IsCancel; }
            set { m_IsCancel = value; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class AfterUpdateYEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseItem"></param>
        public AfterUpdateYEventArgs( float y, BaseItem baseItem ) :
            base( baseItem )
        {
            m_OldY = y;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private float m_OldY = 0;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public float OldY
        {
            get { return m_OldY; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class BeforeUpdateZEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseItem"></param>
        public BeforeUpdateZEventArgs( float z, BaseItem baseItem ) :
            base( baseItem )
        {
            m_NewZ = z;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private float m_NewZ = 0;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public float NewZ
        {
            get { return m_NewZ; }
        }

        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private bool m_IsCancel = false;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public bool IsCancel
        {
            get { return m_IsCancel; }
            set { m_IsCancel = value; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class AfterUpdateZEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseItem"></param>
        public AfterUpdateZEventArgs( float z, BaseItem baseItem ) :
            base( baseItem )
        {
            m_OldZ = z;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private float m_OldZ = 0;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public float OldZ
        {
            get { return m_OldZ; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class BeforeUpdateOrientationEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseItem"></param>
        public BeforeUpdateOrientationEventArgs( float orientation, BaseItem baseItem ) :
            base( baseItem )
        {
            m_NewOrientation = orientation;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private float m_NewOrientation = 0;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public float NewOrientation
        {
            get { return m_NewOrientation; }
        }

        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private bool m_IsCancel = false;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public bool IsCancel
        {
            get { return m_IsCancel; }
            set { m_IsCancel = value; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class AfterUpdateOrientationEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseItem"></param>
        public AfterUpdateOrientationEventArgs( float orientation, BaseItem baseItem ) :
            base( baseItem )
        {
            m_OldOrientation = orientation;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private float m_OldOrientation = 0;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public float OldOrientation
        {
            get { return m_OldOrientation; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class BeforeUpdateLocationEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseItem"></param>
        public BeforeUpdateLocationEventArgs( Point3D location, BaseItem baseItem ) :
            base( baseItem )
        {
            m_NewLocation = location;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private Point3D m_NewLocation = Point3D.Zero;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public Point3D NewLocation
        {
            get { return m_NewLocation; }
        }

        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private bool m_IsCancel = false;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public bool IsCancel
        {
            get { return m_IsCancel; }
            set { m_IsCancel = value; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class AfterUpdateLocationEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseItem"></param>
        public AfterUpdateLocationEventArgs( Point3D location, BaseItem baseItem ) :
            base( baseItem )
        {
            m_OldLocation = location;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private Point3D m_OldLocation = Point3D.Zero;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public Point3D OldLocation
        {
            get { return m_OldLocation; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class BeforeUpdateMapEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseItem"></param>
        public BeforeUpdateMapEventArgs( BaseMap baseMap, BaseItem baseItem ) :
            base( baseItem )
        {
            m_NewMap = baseMap;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private BaseMap m_NewMap = null;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public BaseMap NewMap
        {
            get { return m_NewMap; }
        }

        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private bool m_IsCancel = false;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public bool IsCancel
        {
            get { return m_IsCancel; }
            set { m_IsCancel = value; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class AfterUpdateMapEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseItem"></param>
        public AfterUpdateMapEventArgs( BaseMap baseMap, BaseItem baseItem ) :
            base( baseItem )
        {
            m_OldMap = baseMap;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private BaseMap m_OldMap = null;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public BaseMap OldMap
        {
            get { return m_OldMap; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class BeforeUpdateNameEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseItem"></param>
        public BeforeUpdateNameEventArgs( string strName, BaseItem baseItem ) :
            base( baseItem )
        {
            m_NewName = strName;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private string m_NewName = string.Empty;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public string NewName
        {
            get { return m_NewName; }
        }

        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private bool m_IsCancel = false;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public bool IsCancel
        {
            get { return m_IsCancel; }
            set { m_IsCancel = value; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class AfterUpdateNameEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseItem"></param>
        public AfterUpdateNameEventArgs( string strName, BaseItem baseItem ) :
            base( baseItem )
        {
            m_OldName = strName;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private string m_OldName = string.Empty;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public string OldName
        {
            get { return m_OldName; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class BeforeUpdateItemTemplateEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseItem"></param>
        public BeforeUpdateItemTemplateEventArgs( BaseItemTemplate baseItemTemplate, BaseItem baseItem ) :
            base( baseItem )
        {
            m_NewItemTemplate = baseItemTemplate;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private BaseItemTemplate m_NewItemTemplate = null;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public BaseItemTemplate NewItemTemplate
        {
            get { return m_NewItemTemplate; }
        }

        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private bool m_IsCancel = false;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public bool IsCancel
        {
            get { return m_IsCancel; }
            set { m_IsCancel = value; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class AfterUpdateItemTemplateEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseItem"></param>
        public AfterUpdateItemTemplateEventArgs( BaseItemTemplate baseItemTemplate, BaseItem baseItem ) :
            base( baseItem )
        {
            m_OldItemTemplate = baseItemTemplate;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private BaseItemTemplate m_OldItemTemplate = null;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public BaseItemTemplate OldItemTemplate
        {
            get { return m_OldItemTemplate; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class BeforeUpdateOwnerEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseItem"></param>
        public BeforeUpdateOwnerEventArgs( BaseCreature ownerCreature, BaseItem baseItem ) :
            base( baseItem )
        {
            m_NewOwner = ownerCreature;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private BaseCreature m_NewOwner = null;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public BaseCreature NewOwner
        {
            get { return m_NewOwner; }
        }

        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private bool m_IsCancel = false;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public bool IsCancel
        {
            get { return m_IsCancel; }
            set { m_IsCancel = value; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class AfterUpdateOwnerEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseItem"></param>
        public AfterUpdateOwnerEventArgs( BaseCreature ownerCreature, BaseItem baseItem ) :
            base( baseItem )
        {
            m_OldOwner = ownerCreature;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private BaseCreature m_OldOwner = null;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public BaseCreature OldOwner
        {
            get { return m_OldOwner; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class BeforeUpdateParentEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseItem"></param>
        public BeforeUpdateParentEventArgs( BaseItem parentItem, BaseItem baseItem ) :
            base( baseItem )
        {
            m_NewParent = parentItem;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private BaseItem m_NewParent = null;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public BaseItem NewParent
        {
            get { return m_NewParent; }
        }

        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private bool m_IsCancel = false;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public bool IsCancel
        {
            get { return m_IsCancel; }
            set { m_IsCancel = value; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class AfterUpdateParentEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseItem"></param>
        public AfterUpdateParentEventArgs( BaseItem parentItem, BaseItem baseItem ) :
            base( baseItem )
        {
            m_OldParent = parentItem;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private BaseItem m_OldParent = null;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public BaseItem OldParent
        {
            get { return m_OldParent; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class BeforeAddChildItemCallEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseCreature"></param>
        public BeforeAddChildItemCallEventArgs( BaseItem addChildItem, BaseItem baseItem ) :
            base( baseItem )
        {
            m_AddChildIteme = addChildItem;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private BaseItem m_AddChildIteme = null;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public BaseItem AddChildItem
        {
            get { return m_AddChildIteme; }
        }

        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private bool m_IsCancel = false;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public bool IsCancel
        {
            get { return m_IsCancel; }
            set { m_IsCancel = value; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class AfterAddChildItemCallEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseCreature"></param>
        public AfterAddChildItemCallEventArgs( BaseItem addChildItem, BaseItem baseItem ) :
            base( baseItem )
        {
            m_AddChildItem = addChildItem;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private BaseItem m_AddChildItem = null;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public BaseItem AddChildItem
        {
            get { return m_AddChildItem; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class BeforeRemoveChildItemCallEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseCreature"></param>
        public BeforeRemoveChildItemCallEventArgs( BaseItem removeChildItem, BaseItem baseItem ) :
            base( baseItem )
        {
            m_RemoveChildItem = removeChildItem;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private BaseItem m_RemoveChildItem = null;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public BaseItem RemoveChildItem
        {
            get { return m_RemoveChildItem; }
        }

        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private bool m_IsCancel = false;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public bool IsCancel
        {
            get { return m_IsCancel; }
            set { m_IsCancel = value; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItem的事件数据类
    /// </summary>
    public class AfterRemoveChildItemCallEventArgs : BaseItemEventArgs
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseCreature"></param>
        public AfterRemoveChildItemCallEventArgs( BaseItem removeChildItem, BaseItem baseItem ) :
            base( baseItem )
        {
            m_RemoveChildItem = removeChildItem;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private BaseItem m_RemoveChildItem = null;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public BaseItem RemoveChildItem
        {
            get { return m_RemoveChildItem; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItemContainer的事件数据类
    /// </summary>
    public class ItemContainerEventArgs<T> : EventArgs where T : BaseItem
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseCreature"></param>
        public ItemContainerEventArgs( BaseItemContainer<T> itemContainerT )
        {
            m_ItemContainer = itemContainerT;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// BaseWorld的数据
        /// </summary>
        private BaseItemContainer<T> m_ItemContainer = null;
        #endregion
        /// <summary>
        /// BaseWorld实例
        /// </summary>
        public BaseItemContainer<T> ItemContainer
        {
            get { return m_ItemContainer; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItemContainer的事件数据类
    /// </summary>
    public class BeforeAddSubItemCallEventArgs<T> : ItemContainerEventArgs<T> where T : BaseItem
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseCreature"></param>
        public BeforeAddSubItemCallEventArgs( T addSubItem, BaseItemContainer<T> itemContainerT ) :
            base( itemContainerT )
        {
            m_AddSubIteme = addSubItem;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private T m_AddSubIteme = null;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public T AddSubItem
        {
            get { return m_AddSubIteme; }
        }

        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private bool m_IsCancel = false;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public bool IsCancel
        {
            get { return m_IsCancel; }
            set { m_IsCancel = value; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItemContainer的事件数据类
    /// </summary>
    public class AfterAddSubItemCallEventArgs<T> : ItemContainerEventArgs<T> where T : BaseItem
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseCreature"></param>
        public AfterAddSubItemCallEventArgs( T addSubItem, BaseItemContainer<T> itemContainerT ) :
            base( itemContainerT )
        {
            m_AddSubItem = addSubItem;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private T m_AddSubItem = null;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public T AddSubItem
        {
            get { return m_AddSubItem; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItemContainer的事件数据类
    /// </summary>
    public class BeforeRemoveSubItemCallEventArgs<T> : ItemContainerEventArgs<T> where T : BaseItem
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseCreature"></param>
        public BeforeRemoveSubItemCallEventArgs( T removeSubItem, BaseItemContainer<T> itemContainerT ) :
            base( itemContainerT )
        {
            m_RemoveSubItem = removeSubItem;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private T m_RemoveSubItem = null;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public T RemoveSubItem
        {
            get { return m_RemoveSubItem; }
        }

        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private bool m_IsCancel = false;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public bool IsCancel
        {
            get { return m_IsCancel; }
            set { m_IsCancel = value; }
        }
        #endregion
    }

    /// <summary>
    /// BaseItemContainer的事件数据类
    /// </summary>
    public class AfterRemoveSubItemCallEventArgs<T> : ItemContainerEventArgs<T> where T : BaseItem
    {
        #region zh-CHS 构造和初始化和清理 | en Constructors and Initializers and Dispose
        /// <summary>
        /// 初始化构造
        /// </summary>
        /// <param name="baseCreature"></param>
        public AfterRemoveSubItemCallEventArgs( T removeSubItem, BaseItemContainer<T> itemContainerT ) :
            base( itemContainerT )
        {
            m_RemoveSubItem = removeSubItem;
        }
        #endregion

        #region zh-CHS 共有属性 | en Public Properties
        #region zh-CHS 私有成员变量 | en Private Member Variables
        /// <summary>
        /// 
        /// </summary>
        private T m_RemoveSubItem = null;
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public T RemoveSubItem
        {
            get { return m_RemoveSubItem; }
        }
        #endregion
    }

    #endregion
}
#endregion
